package com.hsqn.entity;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class DeliveryRecord {
    /**
     * 配送记录ID（主键，自增）
     * 对应表字段：id
     */
//    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 关联订单ID（关联 meal_order 表的 id，唯一）
     * 对应表字段：order_id（非空）
     */
    @NotNull(message = "关联订单ID不能为空")
    private Long orderId;

    /**
     * 订单编号（关联 meal_order 表的 order_no，非空）
     * 对应表字段：order_no
     */
    @NotNull(message = "订单编号不能为空")
    private String orderNo;

    /**
     * 配送员ID（关联用户表，非空）
     * 对应表字段：delivery_user_id
     */
    @NotNull(message = "配送员ID不能为空")
    private Long deliveryUserId;

    /**
     * 配送员姓名（非必须，用于快速展示）
     * 对应表字段：delivery_user_name
     */
    private String deliveryUserName;

    /**
     * 取餐时间（厨房取餐时记录）
     * 对应表字段：pickup_time（可空）
     */
    private LocalDateTime pickupTime;

    /**
     * 送达时间（老人确认接收时记录）
     * 对应表字段：delivery_time（可空）
     */
    private LocalDateTime deliveryTime;

    /**
     * 配送状态（0-待取餐，1-配送中，2-已送达，3-配送失败，默认0）
     * 对应表字段：delivery_status（非空）
     */
    private Integer deliveryStatus = 0;

    /**
     * 配送备注（如：地址单元门需按铃、老人不在家等）
     * 对应表字段：delivery_remark（可空）
     */
    private String deliveryRemark;
}
